Seata Server 配置详解:从基础设置到生产环境部署
Seata Server 作为分布式事务的协调者(TC),其配置直接影响分布式事务的稳定性和性能。本文将详细解析 Seata Server 的核心配置文件(file.conf 和 registry.conf),并介绍启动与部署的关键注意事项。
核心配置文件概述
Seata Server 的配置主要通过两个文件管理:
file.conf:配置事务存储模式、通信协议、线程池等核心参数;registry.conf:配置服务注册与配置中心(如 Nacos、Eureka、Zookeeper 等)。
默认配置文件位于 Seata 安装目录的 conf 文件夹下。
file.conf 配置详解
file.conf 是 Seata Server 的核心配置文件,包含通信传输、服务配置、事务存储等关键设置。
1. 传输配置(transport)
定义 Seata Server 与客户端(TM/RM)的通信方式:
1 | transport { |
优化建议:
- 高并发场景下可开启
enableClientBatchSendRequest = true,减少网络交互; - 序列化方式推荐
kryo(性能优于默认的seata)。
2. 服务配置(service)
定义事务分组与 Seata Server 地址映射:
1 | service { |
关键说明:
- 事务分组(vgroupMapping):客户端通过事务分组关联到具体集群,格式为
vgroupMapping.分组名 = 集群名; - grouplist:当注册中心为
file时,直接指定 Seata Server 地址;若使用 Nacos 等注册中心,此配置无效。
3. 事务存储配置(store)
定义全局事务会话的存储方式(file 或 db),生产环境推荐 db 模式:
1 | store { |
数据库存储配置步骤:
- 在 MySQL 中创建
seata数据库; - 执行
conf/db_seata.sql脚本创建表(global_table、branch_table、lock_table); - 配置
url、user、password与数据库匹配。
4. 服务器配置(server)
定义事务恢复、超时等参数:
1 | server { |
registry.conf 配置详解
registry.conf 用于配置 Seata Server 的注册中心和配置中心,支持 Nacos、Eureka、Zookeeper 等。
1. 注册中心配置(registry)
指定 Seata Server 注册到哪里,供客户端发现:
1 | registry { |
推荐配置:生产环境优先使用 nacos 或 zk,避免 file 模式(不支持动态扩缩容)。
2. 配置中心配置(config)
指定 Seata Server 的配置来源(如 Nacos、Apollo 等):
1 | config { |
优势:使用 Nacos 作为配置中心时,可动态修改 Seata 配置(如事务分组),无需重启 Server。
启动 Seata Server
1. 单机启动
在 Seata 安装目录的 bin 文件夹下执行:
1 | # Linux/Mac |
参数说明:
-p:端口号(默认 8091);-h:绑定 IP(默认 0.0.0.0);-m:存储模式(file/db,需与file.conf一致)。
2. 集群启动
确保所有节点的
file.conf和registry.conf配置一致(尤其是事务分组和数据库连接);分别在不同节点启动 Seata Server,指定不同端口:
1
2
3
4# 节点1
sh seata-server.sh -p 8091 -m db
# 节点2
sh seata-server.sh -p 8092 -m db若使用 Nacos 注册中心,客户端通过事务分组自动发现所有节点。
生产环境配置建议
- 存储模式:必须使用
db模式,避免file模式导致的集群数据不一致; - 数据库高可用:Seata 依赖的 MySQL 建议部署主从架构,配合读写分离;
- 注册中心:优先选择 Nacos 或 Zookeeper,支持动态扩缩容和服务发现;
- 线程池优化:根据服务器 CPU 核心数调整
workerThreadSize,避免线程过多导致上下文切换开销; - 日志清理:定期清理
undo_log表和 Seata 日志,避免磁盘空间溢出; - 端口与防火墙:开放 Seata 端口(默认 8091)和数据库端口,确保节点间通信正常。
总结
Seata Server 的配置核心在于 file.conf(事务存储、通信)和 registry.conf(注册与配置中心)。生产环境需重点关注:
- 采用
db模式存储事务数据,保证集群一致性; - 使用 Nacos 等注册中心,支持动态发现和扩缩容;
- 合理配置线程池、超时重试等参数,平衡性能与稳定性
v1.3.10